#include <iostream>

using namespace std;

template<typename T>
void func_helper(T t)                   // 递归结束条件
{
    cout<<t<<endl;
}

template<typename T, typename ... Args>
void func_helper(T t, Args ... t2)
{
    func_helper(t2...);                 // 参数解包
    cout<<t<<endl;                      // 逆序打印出参数
}

template<typename ... Args>
void func(Args ... t)
{
    cout << sizeof...(t)<<endl;         // sizeof... 运算符计算可变参数数量
    func_helper(t ...);
}

int main()
{
    func(5,3.5,"hello",'t');
}